P2376 [USACO09OCT] Allowance G
简要题意
给你 $n$ 种面值的货币,其中货币中面值小的货币的面值可以整除面值大的货币的面值,给你每种面值货币的数量。每周都要给贝茜发至少 $c$ 元的工资,问最多能发多少周。
策略分析
首先对于面值大于 $c$ 的货币,显然我们每周给出一张就行了,没有其它办法,所以可以直接把它们的数量加在答案中。接下来是对于面值小于 $c$ 的货币,我们先对所有货币按照面值降序排序,每次选取能够选的最大的,然后再用最小的去填补剩下的那一点点价格缝隙,因为我们有小面值货币面值是大面值货币面值因数这个条件,所以最大配最小这种做法一定会产生最小的浪费,从而得到最优解。如果这一次凑不出来了,那显然是钱不够了,那么所有情况就统计完毕,输出答案即可。
参考代码
1 |
|
说些什么吧!